<?php

/**
 * This is the model class for table "{{reporte_detail}}".
 *
 * The followings are the available columns in table '{{reporte_detail}}':
 * @property integer $id_reporte_detail
 * @property integer $id_reporte_master
 * @property integer $idalertas
 * @property string $codigo_proceso
 * @property integer $id_proveedor
 * @property string $proveedor
 * @property string $objeto
 * @property integer $id_tipo_contratacion
 * @property string $tipo_contratacion
 * @property integer $id_tipo_compra
 * @property string $tipo_compra
 * @property string $monto
 * @property string $administrador_contrato
 * @property integer $idalarm_forma_pago
 * @property string $forma_pago
 * @property string $fecha_inicio
 * @property string $fecha_fin
 * @property string $porcentaje_alerta
 * @property string $porcentaje_actual
 * @property string $tipo_estado
 */
class ReporteDetail extends CActiveRecord
{
	/**
	 * Returns the static model of the specified AR class.
	 * @param string $className active record class name.
	 * @return ReporteDetail the static model class
	 */
	public static function model($className=__CLASS__)
	{
		return parent::model($className);
	}

	/**
	 * @return string the associated database table name
	 */
	public function tableName()
	{
		return '{{reporte_detail}}';
	}

	/**
	 * @return array validation rules for model attributes.
	 */
	public function rules()
	{
		// NOTE: you should only define rules for those attributes that
		// will receive user inputs.
		return array(
			array('id_reporte_master, idalertas, codigo_proceso, id_proveedor, proveedor, objeto, id_tipo_contratacion, tipo_contratacion, id_tipo_compra, tipo_compra, monto, administrador_contrato, idalarm_forma_pago, forma_pago, fecha_inicio, fecha_fin, porcentaje_alerta, porcentaje_actual, tipo_estado', 'required'),
			array('id_reporte_master, idalertas, id_proveedor, id_tipo_contratacion, id_tipo_compra, idalarm_forma_pago', 'numerical', 'integerOnly'=>true),
			array('codigo_proceso', 'length', 'max'=>100),
			array('proveedor, tipo_contratacion, tipo_compra, forma_pago', 'length', 'max'=>400),
			array('monto', 'length', 'max'=>8),
			array('administrador_contrato', 'length', 'max'=>350),
			array('porcentaje_alerta, porcentaje_actual', 'length', 'max'=>10),
			array('tipo_estado', 'length', 'max'=>45),
			// The following rule is used by search().
			// Please remove those attributes that should not be searched.
			array('id_reporte_detail, id_reporte_master, idalertas, codigo_proceso, id_proveedor, proveedor, objeto, id_tipo_contratacion, tipo_contratacion, id_tipo_compra, tipo_compra, monto, administrador_contrato, idalarm_forma_pago, forma_pago, fecha_inicio, fecha_fin, porcentaje_alerta, porcentaje_actual, tipo_estado', 'safe', 'on'=>'search'),
		);
	}

	/**
	 * @return array relational rules.
	 */
	public function relations()
	{
		// NOTE: you may need to adjust the relation name and the related
		// class name for the relations automatically generated below.
		return array(
			'MasterGeneral' => array(self::BELONGS_TO, 'ReporteMaster', 'id_reporte_master'),		
		);
	}

	/**
	 * @return array customized attribute labels (name=>label)
	 */
	public function attributeLabels()
	{
		return array(
			'id_reporte_detail' => 'Id Reporte Detail',
			'id_reporte_master' => 'Id Reporte Master',
			'idalertas' => 'Idalertas',
			'codigo_proceso' => 'Codigo Proceso',
			'id_proveedor' => 'Id Proveedor',
			'proveedor' => 'Proveedor',
			'objeto' => 'Objeto',
			'id_tipo_contratacion' => 'Id Tipo Contratacion',
			'tipo_contratacion' => 'Tipo Contratacion',
			'id_tipo_compra' => 'Id Tipo Compra',
			'tipo_compra' => 'Tipo Compra',
			'monto' => 'Monto',
			'administrador_contrato' => 'Administrador Contrato',
			'idalarm_forma_pago' => 'Idalarm Forma Pago',
			'forma_pago' => 'Forma Pago',
			'fecha_inicio' => 'Fecha Inicio',
			'fecha_fin' => 'Fecha Fin',
			'porcentaje_alerta' => 'Porcentaje Alerta',
			'porcentaje_actual' => 'Porcentaje Actual',
			'tipo_estado' => 'Tipo Estado',
		);
	}

	/**
	 * Retrieves a list of models based on the current search/filter conditions.
	 * @return CActiveDataProvider the data provider that can return the models based on the search/filter conditions.
	 */
	public function search()
	{
		// Warning: Please modify the following code to remove attributes that
		// should not be searched.

		$criteria=new CDbCriteria;

		$criteria->compare('id_reporte_detail',$this->id_reporte_detail);
		$criteria->compare('id_reporte_master',$this->id_reporte_master);
		$criteria->compare('idalertas',$this->idalertas);
		$criteria->compare('codigo_proceso',$this->codigo_proceso,true);
		$criteria->compare('id_proveedor',$this->id_proveedor);
		$criteria->compare('proveedor',$this->proveedor,true);
		$criteria->compare('objeto',$this->objeto,true);
		$criteria->compare('id_tipo_contratacion',$this->id_tipo_contratacion);
		$criteria->compare('tipo_contratacion',$this->tipo_contratacion,true);
		$criteria->compare('id_tipo_compra',$this->id_tipo_compra);
		$criteria->compare('tipo_compra',$this->tipo_compra,true);
		$criteria->compare('monto',$this->monto,true);
		$criteria->compare('administrador_contrato',$this->administrador_contrato,true);
		$criteria->compare('idalarm_forma_pago',$this->idalarm_forma_pago);
		$criteria->compare('forma_pago',$this->forma_pago,true);
		$criteria->compare('fecha_inicio',$this->fecha_inicio,true);
		$criteria->compare('fecha_fin',$this->fecha_fin,true);
		$criteria->compare('porcentaje_alerta',$this->porcentaje_alerta,true);
		$criteria->compare('porcentaje_actual',$this->porcentaje_actual,true);
		$criteria->compare('tipo_estado',$this->tipo_estado,true);

		return new CActiveDataProvider($this, array(
			'criteria'=>$criteria,
		));
	}
}